当前位置:  开发笔记 > 编程语言 > 正文

使用`ShouldBeEquivalentTo`,`ShouldAllBeEquivalentTo`和`BeEquivalentTo`

如何解决《使用`ShouldBeEquivalentTo`,`ShouldAllBeEquivalentTo`和`BeEquivalentTo`》经验,为你挑选了1个好方法。

我在我的单元测试流利断言工作,但是使用的ShouldBeEquivalentTo,ShouldAllBeEquivalentTo以及BeEquivalentTo目前还不清楚.

例如; 所有以下语句都通过,因此函数看起来是等效的.

List a = new List() { "james", "wood" };
List b = new List() { "james", "wood" };

a.ShouldBeEquivalentTo(b);
a.ShouldAllBeEquivalentTo(b);
a.Should().BeEquivalentTo(b);

我为什么要使用一个而不是另一个?



1> Dennis Doome..:

ShouldBeEquivalentTo并且ShouldAllBeEquivalentTo是相同的,并将进行递归结构比较.但由于行为是高度可配置的,因此某些选项支持使用属性表达式来包含或排除某些成员.但是,T表达式中的含义是指使用List时的根对象()的类型ShouldBeEquivalentTo,以及string是否ShouldAllBeEquivalentTo使用了它.前者作用于整个物体而后者作用于整个物体IEnumerable.

Should().BeEquivalentTo()是一个更简单的实现,它将只使用顺序不敏感的比较Equals.此方法将在下一次更改(v5.x)中删除.


https://continuousimprover.com/2018/02/fluent-assertions-50-best-unit-test.html#upgrading-tips中描述的V5更改
推荐阅读
可爱的天使keven_464
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有